package fr.esiag.projet17.service;

import java.io.Serializable;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;

public interface IDAOService<T> extends Serializable, Remote {
	/**
	 * @param id
	 * @return
	 */
	T read(T id) throws RemoteException;
	
	/**
	 * @param newInstance
	 * @return
	 */
	T create(T newInstance) throws RemoteException;
	
	/**
	 * @param transientObject
	 */
	void update(T transientObject) throws RemoteException;
	
	/**
	 * @param persistentObject
	 */
	void delete(T persistentObject) throws RemoteException;
	
	List<T> select() throws RemoteException;
}